// pages/addPatient/index.js

var lat2
var lng2
import {
  ApiAddPatient,
  ApiEditPatient
} from '../../api/index'
import {
  areaList
} from '../../miniprogram_npm/@vant/area-data/area.js';
Page({

  /**
   * 页面的初始数据
   */

  data: {
    id: '',
    areaList,
    showpopup: false,
    title: '添加联系人',
    opt: {
      name: '',
      area: '',
      area_detail: '',
      phone: '',
      latitude: '1',
      longitude: '2',
    }
  },

  onLoad(options) {


    if (options && options.data) {
      const item = JSON.parse(options.data)
      const opt = {}
      for (const key in this.data.opt) {
        opt[key] = item[key] ?? ""
      }
      this.setData({
        opt,
        id: item.id,
        title: '修改就诊人'
      })
    } else {
      this.setData({
        title: '添加就诊人'
      })
    }
 /*    this.getLocation() */
  },

  //地址确认
  confirmBtn(v) {
    let val = v.detail.values
    let value = (val[0].name + "-" + val[1].name + "-" + val[2].name)
    this.setData({
      'opt.area': value,
      'showpopup': false
    })
  },
  cancelBtn() {
    this.setData({
      'showpopup': false
    })
  },
  onClose() {
    this.setData({
      'showpopup': false
    })
  },
  onChange(e) {
    console.log(e)
    const type = e.currentTarget.dataset.type
    const value = e.detail
    this.setData({
      [`opt.${type}`]: value
    })

  },
  //添加联系人
  addPatient() {
    if (this.data.id) {
      if (this.rules(this.data.opt.phone, '手机号')) {
        ApiEditPatient(this.data.id, this.data.opt).then(res => {
          if (res.code == '200') {
            wx.showToast({
              title: "修改成功",
            })
            setTimeout(() => {
              wx.navigateBack()
            }, 1000);
          }
        })
      }


    } else {
      if (this.rules(this.data.opt.phone, '手机号')) {
        ApiAddPatient(this.data.opt).then(res => {
          if (res.code == '200') {
            wx.showToast({
              title: "添加成功",
            })
            wx.navigateBack()
          }
        })
      }


    }

  },

  //检索手机号
  rules(val, message) {
    if (!/^1[3456789]\d{9}$/.test(val)) {
      wx.showToast({
        title: `请输入正确的${message}`,
        icon: 'none'
      });
      return false;
    } else {
      return true
    }
  },
  //检索身份证号
  rulesIDNumber(val, message) {

    console.log('122222222222222222222')
    if (!/^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/.test(val)) {
      wx.showToast({
        title: `请输入正确的${message}`,
        icon: 'none'
      });
      return false;
    } else {
      return true
    }
  },

  /**
   * 生命周期函数--监听页面加载
   */
  //  获取地址
  getDetailArea() {
       this.setData({
         showpopup: true
       })
   /*  var that = this;
    wx.chooseLocation({
      success: res => {
        console.log(res)
        lat2 = res.latitude;
        lng2 = res.longitude;
        if (Number(this.comPutedjuli(31.022424, 113.114182, lat2, lng2))>10){
          console.log('1112')
          wx.showModal({
            title: '所选地址距离医院位置不能大于10公里！',
          
            showCancel: false,
            success: function (res) {
              if (res.confirm) {
                  that.getDetailArea()
              } 
            }
          });
        }else{
        this.setData({
          'opt.area': res.address,
          'opt.area_detail': res.name,
        })
      }
      }
    }) */
  },



  // 计算两地之间的距离
  comPutedjuli(lat1, lng1, lat2, lng2) {
    console.log(lat1, lng1, lat2, lng2)
    var radLat1 = lat1 * Math.PI / 180.0;
    var radLat2 = lat2 * Math.PI / 180.0;
    var a = radLat1 - radLat2;
    var b = lng1 * Math.PI / 180.0 - lng2 * Math.PI / 180.0;
    var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
    s = s * 6378.137;
    s = Math.round(s * 10000) / 10000;
    return s
  },



  //获取当前的位置
  getLocation() {
    let that = this
    wx.getLocation({
      type: 'wgs84', //返回可以用于wx.openLocation的经纬度
      success(res) {
        // console.log(res)
        lat1 = res.latitude
        lng1 = res.longitude
        /*   that.handleGetLocation(latitude, longitude) */
      }
    })
  },
  handleGetLocation(latitude, longitude) {
    /*   let val = e.currentTarget.dataset.v
      let mapVal = val.split(',')
      let latitude = Number(mapVal[0])
      let longitude = Number(mapVal[1]) */
    wx.openLocation({
      latitude,
      longitude,
      scale: 18
    })
    // wx.getLocation({
    //   type: 'gcj02', //返回可以用于wx.openLocation的经纬度
    //   success(res) {

    //   }
    // })






  },


  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    console.log(this.data.areaList)
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})